package communication.game;
import java.awt.Point;

import game.Game;
import game.GameObject;
import game.Player;
import client.ClientInternals;
import communication.ComSrvCli;

/**
 * Objet envoye au client pour annoncer des cases jouees
 * @author Julien Roch
 * @version 0.1
 */
public class CellsPlayed extends ComSrvCli {

	/**
	 * Pour la serialisation
	 */
	private static final long serialVersionUID = -8971016201804063133L;

	
	private Game game;
	private GameObject objects[];
	private Point origin;
	private Player players[];
	private Player player;
	/**
	 * Constructeur, permet de jouer une case
	 * @param game
	 * @param objects La liste d'objet
	 * @param origin Indique la case recement cliquee
	 * @param players la liste des joueurs
	 * @param player le joueur
	 */
	public CellsPlayed (Game game, GameObject objects[], Point origin, Player players[], Player player) {
		this.game = game;
		this.objects = objects.clone();
		this.origin = origin;
		this.players = players.clone();
		this.player = player;
	}
	
	/**
	 * Methode visiteur
	 */
	@Override
	public void handleClientInternals(ClientInternals internals) {
		internals.setPlayedCells(this);
	}
	
	/**
	 * Renvoie la partie
	 * @return Le jeu
	 */
	public Game getGame() {
		return game;
	}

	/**
	 * Renvoie les objets
	 * @return the objects
	 */
	public GameObject[] getObjects() {
		return objects;
	}
	/**
	 * Indique l'origine
	 * @return l'origine
	 */
	public Point getOrigin(){
		return this.origin;
	}
	/**
	 * Indique la liste des joueurs
	 * @return la liste des joueurs
	 */
	public Player[] getPlayers(){
		return this.players;
	}
	/**
	 * Indique le joueur qui joue la cellue
	 * @return le joueur
	 */
	public Player getPlayer(){
		return this.player;
	}
}
